package com.chenfan.mcn.model;

import com.baomidou.mybatisplus.annotation.*;

import com.chenfan.mcn.extension.log.FieldDesc;
import com.chenfan.mcn.enums.ArchivingStatusEnum;
import com.chenfan.mcn.enums.YearStatusEnum;
import com.chenfan.mcn.extension.log.FieldTypeEnum;
import com.chenfan.mcn.model.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 年框合同补充协议
 * </p>
 *
 * @author lizhejin
 * @since 2021-01-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("year_supplementary_agreement")
public class YearSupplementaryAgreement extends BaseEntity {

    private static final long serialVersionUID = -1436420559553408424L;

    /**
     * 年框合同id
     */
    private Long yearId;

    /**
     * 年框合同补充协议号
     */
    private String agreementCode;

    /**
     * 主要变更内容（1-我司合同主体，2-优惠政策，3-其他）
     */
    @FieldDesc(value = "主要变更内容")
    private String mainChanges;

    /**
     * 变更内容说明
     */
    @FieldDesc(value = "变更内容说明")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String changeContent;

    /**
     * 变更前我司合同主体（数据字典）
     */
    @FieldDesc(value = "变更前我司合同主体")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String contactSubjectBeforeChange;

    /**
     * 变更后我司合同主体（数据字典）
     */
    @FieldDesc(value = "变更后我司合同主体")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String contactSubjectAfterChange;


    /**
     * 变更前折扣返点审批单
     */
    @FieldDesc(value = "变更前折扣返点审批单")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String discountApprovalBeforeChange;

    /**
     * 变更后折扣返点审批单
     */
    @FieldDesc(value = "变更后折扣返点审批单")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String discountApprovalAfterChange;

    /**
     * 附件
     */
    @FieldDesc(value = "附件", fieldType = FieldTypeEnum.FILE)
    private String enclosure;

    /**
     * 备注
     */
    @FieldDesc(value = "备注")
    private String remark;

    /**
     * 单据状态:0_待提交、1_审批中、2_审批通过、3_审批拒绝、4_已撤回、5_已作废。
     */
    @FieldDesc(value = "单据状态", translator = YearStatusEnum.class)
    private Integer status;

    /**
     * 变更后合同主体id
     */
    private Long contractingId;

    /**
     * 变更前合同主体id
     */
    private Long beforeContractingId;

    /**
     * 归档状态(0-待盖章，1-待归档，2-已归档)
     */
    @FieldDesc(value = "归档状态", translator = ArchivingStatusEnum.class)
    private Integer archivingStatus;

    /**
     * 归档编号
     */
    @FieldDesc(value = "归档编号")
    private String archivingCode;

}
